iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Build on Google AI

AI 策展人:用 Google ADK 打造會思考、會介紹的 3D 展示平台系列 第 6

Day 06|自己動手做一台齒輪減速機:一份人人都能重現的範例

  • 分享至 

  • xImage
  •  

工廠要測試生產線,第一件事不是急著量產,而是先準備一份「標準試樣」。今天就來做這件事:用程式產生一台齒輪減速機的 STEP 檔,當作這個系列接下來所有實驗的固定素材。

為什麼要自己產生,不去網路上抓?

現成模型的授權常常不清楚,能不能公開轉載是個問號;來源也不固定,你拿到的不一定跟我拿到的是同一份,問題就難以重現。所以這次用程式產生:程式在你手上,跑出來的檔案就跟我的一模一樣。

這台減速機長什麼樣?

把它想成一盒貼了標籤的積木,一共 13 塊,放進 4 個小盒子,再收進一個大箱子:

Gearbox(大箱子)
├─ Housing(機殼組)    Base_Plate · Housing_Body · Housing_Cover
├─ Input_Stage(輸入端) ROT_Input_Shaft · Input_Gear · 前後軸承各一
├─ Output_Stage(輸出端)ROT_Output_Shaft · Output_Gear · 前後軸承各一
└─ Drive(驅動端)      Motor_Flange · Motor

輸入齒輪 16 齒、輸出齒輪 32 齒,減速比 2:1。每塊積木都有名字和顏色。(專業一點說:這種「大箱子裡有小盒子、小盒子裡有積木」的樹狀關係叫組件階層,也就是 Day 03 講過的零件樹。)

先認識幕後的工具:引擎與應用程式

接下來會出現幾個工具名字,先分清楚它們的層級。用「汽車」來想:

  • CAD 軟體(SolidWorks、FreeCAD、Fusion 等)是整台車:有畫面、有按鈕,給人用滑鼠畫 3D 模型。
  • OCCT(Open CASCADE Technology)是引擎:一套開源的幾何運算函式庫,負責真正的運算——建立實體、切割合併、讀寫 STEP、把曲面切成三角形。它沒有畫面,本身不是 CAD 軟體,但很多 CAD 軟體(例如 FreeCAD)的底層都是它。
  • STEP交車用的規格文件:一種檔案格式,讓不同 CAD 軟體交換模型。OCCT 內建了讀寫 STEP 的功能,所以我們用它寫出 STEP,也用它讀回驗證。
  • XCAF 是 OCCT 引擎裡的一個模組,專門負責記錄名稱、顏色、組件階層。
  • OCP 是 OCCT 的 Python 接頭。OCCT 本身是 C++ 寫的,OCP 讓 Python 也能操作它。
  • CadQuery 是架在 OCP 上面的好用工具,讓你用幾行程式碼畫 3D 模型(畫方塊、打孔、倒角),畫出來的是 3D 模型,可以匯出成 STEP,不是平面的工程圖。

疊起來是這樣:

CadQuery   ← 好用的高階寫法(原本想用,後面會說為什麼沒用)
   ↓
OCP        ← Python 接頭(我們實際用的)
   ↓
OCCT       ← C++ 幾何引擎,真正做運算的地方(XCAF 是其中一個模組)

關鍵:標籤要一起存進去

Day 05 講過,STEP 除了形狀,還能存名字、顏色、組件階層,但要用對方法才會存。有些匯出方式只輸出形狀,名字就丟了。

這裡用的是 OCCT 裡的 XCAF 模組。你可以把 XCAF 想成一本「附標籤的積木目錄」:先建一個空的大箱子,一塊一塊積木做好、貼上名字和顏色,再照階層一層層放進小盒子,最後整本目錄輸出成 STEP。

一個小約定:ROT_

兩根軸的名字開頭是 ROT_(rotate 的縮寫)。要注意,Base_PlateHousing_Body 這些零件名稱,跟 ROT_ 這個前綴,都是我們自己取的、自己訂的,不是 STEP 或 CAD 軟體的標準用語。STEP 只是忠實地把這些文字存起來,並不知道它們代表什麼。

ROT_ 是一個命名暗號:之後我們自己的程式看到這個開頭,就知道「這根會轉」,可以自動產生旋轉動畫。前面 Day 03 說「規則要寫在資料裡」,這也是一個例子。

寫完要讀回來驗證

包裹寄出前要對貨單。程式寫完 STEP 之後,會用 XCAF 再讀一次,檢查 13 個零件的名字、顏色、階層是不是都還在。只要有一個對不上,就視為失敗。這樣後續實驗出問題時,就能排除「試樣本身有毛病」這個可能。

一個取捨

原本想用上面圖裡最上層、最好寫的 CadQuery 來畫,但它要求的 OCCT 版本比我們選用的舊,硬裝會把引擎整個降版。所以改成直接使用中間那層的 OCP,程式碼多一點,功能一樣,而且跟後面「讀取 STEP」的流程用同一套呼叫方式,反而更一致。

另外,齒輪的齒形是簡化過的梯形,不是工程上的漸開線。展示夠用,也剛好說明「展示用模型」與「製造用模型」是兩回事。

下一篇,就拿這份試樣,轉出第一顆能在網頁上看的 GLB。


上一篇
Day 05|STEP、STL、glTF:同一個零件的三種「存法」
下一篇
Day 07|STEP 轉 GLB:搬家時,名字跟顏色一個都不能少
系列文
AI 策展人:用 Google ADK 打造會思考、會介紹的 3D 展示平台9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言